/**
 * 调用历史对象的方法
 */
export const CALL_HISTORY_METHOD = '@@router/CALL_HISTORY_METHOD'

/**
 * 路径发生变化
 */
export const LOCATION_CHANGE = '@@router/LOCATION_CHANGE'

/**
 * 当路径发生变化时 使用 dispatch 自动派发一个 action 对象同步到 redux store 中
 */
function locationChangeAction(location, action) {
  return {
    type: LOCATION_CHANGE,
    payload: {
      action,
      location,
    }
  }
}

/**
 * 返回一个跳转路径的 action 动作对象
 */
function push(...args) { // ['/counter']
  return {
    type: CALL_HISTORY_METHOD,
    payload: {
      method: 'push',
      args
    }
  }
}

export {
  push,
  locationChangeAction,
}
